home *** CD-ROM | disk | FTP | other *** search
Wrap
/* -- ANSI C code generated by : -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82) -- -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE -- -- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr -- -- http://www.loria.fr/SmallEiffel -- */ #include "compile_to_jvm.h" /*No:NATIVE_JVM_INVOKEVIRTUAL.jvm_add_method_for_procedure*/ /*No:NATIVE_JVM_INVOKEVIRTUAL.jvm_add_method_for_function*/ /*No:NATIVE_JVM_INVOKEVIRTUAL.jvm_mapping_procedure*/ /*No:NATIVE_JVM_INVOKEVIRTUAL.jvm_define_procedure*/ int r970idx_methodref(T0* a1){ int R=0; T0* _cp=NULL; T0* _alias_string=NULL; int _i=0; _cp=oBC364constant_pool; _alias_string=/*X279*/((T0*)(((T679*)((T679*)a1)))->_alias_string/*52*/); /*IF*/if ((_alias_string)==((void*)(NULL))) { r683add_position(X279start_position(a1)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_769); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/_i=1; /*[IRF3.3clear*/((((T7*)(((T7*)(oBC769tmp_class)))))->_count)=(0); /*]*/ while (!((/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\56'))) { r7extend(((T7*)(oBC769tmp_class)),/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/); _i=(_i)+(1); } _i=(_i)+(1); /*[IRF3.3clear*/((((T7*)(((T7*)(oBC769tmp_name)))))->_count)=(0); /*]*/ while (!((/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\40'))) { r7extend(((T7*)(oBC769tmp_name)),/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/); _i=(_i)+(1); } _i=(_i)+(1); /*[IRF3.3clear*/((((T7*)(((T7*)(oBC769tmp_descriptor)))))->_count)=(0); /*]*/ while (!((_i)>((((T7*)((T7*)_alias_string)))->_count/*4*/))) { r7extend(((T7*)(oBC769tmp_descriptor)),/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/); _i=(_i)+(1); } R=r95idx_methodref3(((T95*)_cp),oBC769tmp_class,oBC769tmp_name,oBC769tmp_descriptor); return R; } /*No:NATIVE_JVM_INVOKEVIRTUAL.use_current*/ /*No:NATIVE_JVM_INVOKEVIRTUAL.jvm_define_function*/ /*No:NATIVE_JVM_INVOKEVIRTUAL.fatal_error*/ void r970jvm_mapping_function(T0* a1,T0* a2,T0* a3){ T0* _ca=NULL; int _idx=0; int _space=0; _ca=oBC364code_attribute; r228drop_target(((T228*)(oBC364jvm))); _space=r228push_arguments(((T228*)(oBC364jvm))); _idx=r970idx_methodref((((T892*)((T892*)a1)))->_base_feature/*48*/); _space=(X291jvm_stack_space((((T892*)((T892*)a1)))->_result_type/*24*/))-(_space); r256opcode_invokevirtual(((T256*)_ca),_idx,_space); } void r620make(T620* C,T0* a1,T0* a2){ int _actual_count=0; int _il=0; C->_start_position=a1; C->_list=a2; _il=1; while (!((_il)>((((T382*)((T382*)((((T620*)C))->_list/*8*/))))->_upper/*8*/))) { _actual_count=(_actual_count)+(X411count(r382item(((T382*)((((T620*)C))->_list/*8*/)),_il))); _il=(_il)+(1); } {T733*n=malloc(sizeof(*n)); *n=M733; r733make(n,1,_actual_count); C->_flat_list=(T0*)n; } _il=1; while (!((_il)>((((T382*)((T382*)((((T620*)C))->_list/*8*/))))->_upper/*8*/))) { X411append_in(r382item(((T382*)((((T620*)C))->_list/*8*/)),_il),(T0*)C); _il=(_il)+(1); } } /*No:LOCAL_VAR_LIST.name*/ /*No:LOCAL_VAR_LIST.nb_errors*/ T0* r620type(T620* C,int a1){ T0* R=NULL; R=(((T39*)((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),a1)/*)*/))))->_result_type/*24*/; return R; } int r620jvm_offset_of(T620* C,T0* a1){ int R=0; int _rank=0; int _i=0; _rank=/*X361*/((int)(((T886*)((T886*)a1)))->_rank/*20*/); _i=1; while (!((_i)==(_rank))) { R=(R)+(X291jvm_stack_space(X291run_type(r620type(C,_i)))); _i=(_i)+(1); } return R; } /*No:LOCAL_VAR_LIST.start_position*/ T0* r620to_runnable(T620* C,T0* a1){ T0* R=NULL; T0* _n2=NULL; T0* _n1=NULL; int _i=0; /*IF*/if (((((T620*)C))->_current_type/*16*/)==((void*)(NULL))) { C->_current_type=a1; R=(T0*)C; _i=(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*/; while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) { _n1=r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i); _n2=r39to_runnable(((T39*)_n1),a1); /*IF*/if ((_n2)==((void*)(NULL))) { r620error((((T39*)((T39*)_n1)))->_start_position/*16*/,((T0*)ms3_535)); } else if ((_n1)!=((void*)(_n2))) { /*[IRF3.6put*/{T733* C1=((T733*)((((T620*)C))->_flat_list/*12*/)); T0* b1=_n2; int b2=_i; ((((T733*)C1))->_storage/*4*/)[(b2)-((((T733*)C1))->_lower/*16*/)]=(b1); }/*]*/ } /*FI*/r39name_clash(((T39*)_n2)); _i=(_i)-(1); } } else { {T620*n=malloc(sizeof(*n)); *n=M620; r620runnable_from_current(n,(T0*)C,a1); R=(T0*)n; } } /*FI*/return R; } /*No:LOCAL_VAR_LIST.em1*/ void r620jvm_initialize(T620* C){ int _i=0; int _jvm_offset=0; _i=/*(IRF4.6count*/(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/; while (!((_i)==(0))) { _jvm_offset=r228local_offset_of(((T228*)(oBC364jvm)),/*(IRF4.6name*/r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i)/*)*/); X291jvm_initialize_local(r620type(C,_i),_jvm_offset); _i=(_i)-(1); } } /*No:LOCAL_VAR_LIST.list*/ int r620rank_of(T620* C,T0* a1){ int R=0; R=/*(IRF4.6count*/(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/; while (!(((R)==(0))||((a1)==((void*)((((T39*)((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),R)/*)*/))))->_to_string/*12*/))))) { R=(R)-(1); } return R; } int r620jvm_stack_space(T620* C){ int R=0; int _i=0; _i=/*(IRF4.6count*/(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/; while (!((_i)==(0))) { R=(R)+(X291jvm_stack_space(X291run_type(r620type(C,_i)))); _i=(_i)-(1); } return R; } /*No:LOCAL_VAR_LIST.current_type*/ void r620runnable_from_current(T620* C,T0* a1,T0* a2){ T0* _n2=NULL; T0* _n1=NULL; int _i=0; C->_start_position=(((T620*)((T620*)a1)))->_start_position/*4*/; C->_list=(((T620*)((T620*)a1)))->_list/*8*/; C->_current_type=a2; C->_flat_list=r733twin(((T733*)((((T620*)((T620*)a1)))->_flat_list/*12*/))); _i=(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*/; while (!((_i)==(0))) { _n1=r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i); _n2=r39to_runnable(((T39*)_n1),a2); /*IF*/if ((_n2)==((void*)(NULL))) { r620error((((T39*)((T39*)_n1)))->_start_position/*16*/,((T0*)ms3_535)); } /*FI*//*[IRF3.6put*/{T733* C1=((T733*)((((T620*)C))->_flat_list/*12*/)); T0* b1=_n2; int b2=_i; ((((T733*)C1))->_storage/*4*/)[(b2)-((((T733*)C1))->_lower/*16*/)]=(b1); }/*]*/ _i=(_i)-(1); } } void r620add_last(T620* C,T0* a1){ T0* _n2=NULL; int _i=0; _i=1; while (!((r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i))==((void*)(NULL)))) { _n2=r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i); /*IF*/if (((((T39*)((T39*)_n2)))->_to_string/*12*/)==((void*)((((T39*)((T39*)a1)))->_to_string/*12*/))) { r683add_position((((T39*)((T39*)a1)))->_start_position/*16*/); r683add_position((((T39*)((T39*)_n2)))->_start_position/*16*/); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_535); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/_i=(_i)+(1); } /*[IRF3.6put*/{T733* C1=((T733*)((((T620*)C))->_flat_list/*12*/)); T0* b1=a1; int b2=_i; ((((T733*)C1))->_storage/*4*/)[(b2)-((((T733*)C1))->_lower/*16*/)]=(b1); }/*]*/ /*[IRF3.3set_rank*/((((T39*)(((T39*)a1))))->_rank)=(_i); /*]*/ } void r620error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:LOCAL_VAR_LIST.count*/ /*No:LOCAL_VAR_LIST.fatal_error*/ /*No:LOCAL_VAR_LIST.flat_list*/ int r549id(T549* C){ int R=0; R=(((T355*)((T355*)(r549run_class(C)))))->_id/*4*/; return R; } /*No:TYPE_BIT_1.n*/ /*No:TYPE_BIT_1.nb*/ /*No:TYPE_BIT_1.jvm_target_descriptor_in*/ /*No:TYPE_BIT_1.fz_bit_foo*/ int r549jvm_if_x_eq(void){ int R=0; T0* _cp=NULL; T0* _ca=NULL; int _idx=0; _ca=oBC364code_attribute; _cp=oBC364constant_pool; _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms227_470),((T0*)ms234_470)); r256opcode_invokevirtual(((T256*)_ca),_idx,0); R=r256opcode_ifne(((T256*)_ca)); return R; } /*No:TYPE_BIT_1.has_creation*/ /*No:TYPE_BIT_1.is_anchored*/ /*No:TYPE_BIT_1.is_array*/ int r549is_a(T549* C,T0* a1){ int R=0; T0* _other_bit=NULL; /*IF*/if (X291is_bit(a1)) { _other_bit=a1; if(NULL!=(_other_bit))switch(((T0*)_other_bit)->id) { case 549: case 558: break; default: _other_bit=NULL; };/*IF*/if ((/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*16*//*)*/)<=(X609nb(_other_bit))) { R=1; } else { r683add_type((T0*)C,((T0*)ms71_470)); r683add_type(a1,((T0*)ms1_609)); } /*FI*/} else { R=r605is_subclass_of(((T605*)(r549base_class(C))),X291base_class(a1)); /*IF*/if (R) { r683add_type((T0*)C,((T0*)ms71_470)); r683add_type(a1,((T0*)ms67_470)); } else { r549used_as_reference(C); } /*FI*/} /*FI*/return R; } void r549jvm_to_reference(T549* C){ T0* _ca=NULL; T0* _type_bit_ref=NULL; int _idx=0; T0* _rc=NULL; _ca=oBC364code_attribute; _idx=r226fast_index_of(((T226*)(oBC609mem_ref_nb)),/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*16*//*)*/); _type_bit_ref=/*(IRF4.6item*/((((T41*)((T41*)(oBC609mem_type_bit_ref))))->_storage/*4*/)[_idx]/*)*/; _rc=r963run_class(((T963*)_type_bit_ref)); _idx=r355fully_qualified_constant_pool_index(((T355*)_rc)); r256opcode_new(((T256*)_ca),_idx); /*[IRF3.4opcode_dup_x1*/r256opcode(((T256*)_ca),90,1); /*]*/ /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0); /*]*/ _idx=r95idx_fieldref4(((T95*)(oBC364constant_pool)),_idx,((T0*)ms52_473),((T0*)ms235_470)); r256opcode_putfield(((T256*)_ca),_idx,-(2)); } void r549set_run_time_mark(T549* C){ r7copy(((T7*)(oBC291tmp_string)),((T0*)ms78_470)); r7append(((T7*)(oBC291tmp_string)),r2to_string(/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*16*//*)*/)); C->_run_time_mark=r902item(oBC291tmp_string); } /*No:TYPE_BIT_1.us_put_0*/ /*No:TYPE_BIT_1.run_type*/ /*No:TYPE_BIT_1.is_pointer*/ /*No:TYPE_BIT_1.is_dummy_expanded*/ int r549jvm_push_default(T549* C){ int R=0; T0* _cp=NULL; T0* _ca=NULL; int _idx=0; _ca=oBC364code_attribute; _cp=oBC364constant_pool; _idx=r95idx_class2(((T95*)_cp),((T0*)ms226_470)); r256opcode_new(((T256*)_ca),_idx); /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1); /*]*/ r256opcode_push_integer(((T256*)_ca),/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*16*//*)*/); _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms167_470),((T0*)ms159_470)); r256opcode_invokespecial(((T256*)_ca),_idx,0); return R; } /*No:TYPE_BIT_1.is_string*/ /*No:TYPE_BIT_1.is_like_feature*/ /*No:TYPE_BIT_1.is_like_current*/ /*No:TYPE_BIT_1.us_put_1*/ void r549make(T549* C,T0* a1,T0* a2){ C->_start_position=a1; C->_n=a2; r549set_run_time_mark(C); C->_written_mark=(((T549*)C))->_run_time_mark/*12*/; } /*No:TYPE_BIT_1.jvm_return_code*/ /*No:TYPE_BIT_1.jvm_xnewarray*/ /*No:TYPE_BIT_1.jvm_descriptor_in*/ /*No:TYPE_BIT_1.start_position*/ /*No:TYPE_BIT_1.fz_inako*/ /*No:TYPE_BIT_1.is_user_expanded*/ /*No:TYPE_BIT_1.is_character*/ /*No:TYPE_BIT_1.written_mark*/ /*No:TYPE_BIT_1.is_run_type*/ T0* r549to_runnable(T549* C,T0* a1){ T0* R=NULL; R=(T0*)C; r549to_runnable_1_2(C); return R; } /*No:TYPE_BIT_1.is_formal_generic*/ T0* r549generic_list(T549* C){ T0* R=NULL; r549fatal_error_generic_list(C); return R; } /*No:TYPE_BIT_1.is_real*/ /*No:TYPE_BIT_1.us_bitn*/ /*No:TYPE_BIT_1.fz_a0*/ /*No:TYPE_BIT_1.is_bit*/ void r549fatal_error_generic_list(T549* C){ r683add_type((T0*)C,((T0*)ms12_291)); r683print_as_fatal_error(((T683*)(oBC364eh))); } void r549to_runnable_1_2(T549* C){ T0* _rf=NULL; T0* _rc=NULL; _rc=r549run_class(C); _rf=r355get_feature_with(((T355*)_rc),((T0*)ms105_473)); _rf=r355get_feature_with(((T355*)_rc),((T0*)ms106_473)); } /*No:TYPE_BIT_1.jvm_check_class_invariant*/ /*No:TYPE_BIT_1.fz_a1*/ /*No:TYPE_BIT_1.us_bit_n*/ /*No:TYPE_BIT_1.jvm_xaload*/ T0*oBC291tmp_string=NULL; T0* r549smallest_ancestor(T549* C,T0* a1){ T0* R=NULL; T0* _other_bit=NULL; _other_bit=a1; if(NULL!=(_other_bit))switch(((T0*)_other_bit)->id) { case 549: case 558: break; default: _other_bit=NULL; };/*IF*/if ((/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*16*//*)*/)<(X609nb(_other_bit))) { R=(T0*)C; } else { R=a1; } /*FI*/return R; } /*No:TYPE_BIT_1.fz_a2*/ /*No:TYPE_BIT_1.fz_35*/ /*No:TYPE_BIT_1.is_boolean*/ /*No:TYPE_BIT_1.fz_a3*/ /*No:TYPE_BIT_1.is_double*/ int r549jvm_stack_space(void){ int R=0; /*IF*//*AF*//*AE*/ R=1; /*FI*/return R; } /*No:TYPE_BIT_1.fz_27*/ /*No:TYPE_BIT_1.fz_a4*/ T0* r549run_class(T549* C){ T0* R=NULL; R=r604run_class((T0*)C); return R; } /*No:TYPE_BIT_1.run_time_mark*/ int r549is_a_in(T549* C,T0* a1,T0* a2){ int R=0; T0* _ct=NULL; T0* _t2=NULL; T0* _t1=NULL; /*IF*/if (((((T549*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) { R=1; } else { _ct=(((T355*)((T355*)a2)))->_current_type/*0*/; _t1=r549to_runnable(C,_ct); _t2=X291to_runnable(a1,_ct); /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) { R=1; } else { R=X291is_a(_t1,_t2); } /*FI*/} /*FI*/return R; } T0* r549look_up_for(T549* C,T0* a1,T0* a2){ T0* R=NULL; R=r605look_up_for(((T605*)(r549base_class(C))),a1,a2); return R; } int r549jvm_convert_to(T549* C,T0* a1){ int R=0; T0* _cp=NULL; T0* _ca=NULL; T0* _other_bit=NULL; int _point3=0; int _point2=0; int _point1=0; int _loc2=0; int _loc1=0; int _idx=0; int _space=0; /*IF*/if (X291is_reference(a1)) { r549jvm_to_reference(C); } else { _ca=oBC364code_attribute; _cp=oBC364constant_pool; _other_bit=a1; if(NULL!=(_other_bit))switch(((T0*)_other_bit)->id) { case 549: case 558: break; default: _other_bit=NULL; };_space=X609jvm_push_default(_other_bit); /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0); /*]*/ _loc1=r256extra_local_size1(((T256*)_ca)); r256opcode_push_integer(((T256*)_ca),X609nb(_other_bit)); r256opcode_istore(((T256*)_ca),_loc1); _loc2=r256extra_local_size1(((T256*)_ca)); r256opcode_push_integer(((T256*)_ca),/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*16*//*)*/); r256opcode_istore(((T256*)_ca),_loc2); r256opcode_iload(((T256*)_ca),_loc2); _point1=/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/; _point2=r256opcode_ifeq(((T256*)_ca)); r256opcode_iinc(((T256*)_ca),_loc1,255); r256opcode_iinc(((T256*)_ca),_loc2,255); /*[IRF3.4opcode_dup2*/r256opcode(((T256*)_ca),92,2); /*]*/ r256opcode_iload(((T256*)_ca),_loc2); _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms228_470),((T0*)ms229_470)); r256opcode_invokevirtual(((T256*)_ca),_idx,0); _point3=r256opcode_ifne(((T256*)_ca)); /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1)); /*]*/ r256opcode_iload(((T256*)_ca),_loc2); r256opcode_goto_backward(((T256*)_ca),_point1); r256resolve_u2_branch(_point3); r256opcode_iload(((T256*)_ca),_loc1); _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms230_470),((T0*)ms159_470)); r256opcode_invokevirtual(((T256*)_ca),_idx,0); r256opcode_iload(((T256*)_ca),_loc2); r256opcode_goto_backward(((T256*)_ca),_point1); r256resolve_u2_branch(_point2); /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1)); /*]*/ } /*FI*/return R; } /*No:TYPE_BIT_1.fz_a6*/ /*No:TYPE_BIT_1.expanded_initializer*/ /*No:TYPE_BIT_1.fz_a7*/ int r549jvm_if_x_ne(void){ int R=0; T0* _cp=NULL; T0* _ca=NULL; int _idx=0; _ca=oBC364code_attribute; _cp=oBC364constant_pool; _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms226_470),((T0*)ms227_470),((T0*)ms234_470)); r256opcode_invokevirtual(((T256*)_ca),_idx,0); R=r256opcode_ifeq(((T256*)_ca)); return R; } T0*oBC609mem_type_bit_ref=NULL; /*No:TYPE_BIT_1.fz_dot*/ /*No:TYPE_BIT_1.is_generic*/ void r549jvm_write_local(int a1){ T0* _cp=NULL; T0* _ca=NULL; int _idx=0; _ca=oBC364code_attribute; _cp=oBC364constant_pool; _idx=(((T95*)((T95*)_cp)))->_idx_java_lang_object/*8*/; _idx=r95idx_methodref1(((T95*)_cp),_idx,((T0*)ms232_470),((T0*)ms233_470)); r256opcode_invokevirtual(((T256*)_ca),_idx,0); r256opcode_astore(((T256*)(oBC364code_attribute)),a1); } void r549jvm_initialize_local(T549* C,int a1){ int _space=0; _space=r549jvm_push_default(C); r256opcode_astore(((T256*)(oBC364code_attribute)),a1); } void r549used_as_reference(T549* C){ T0* _rc=NULL; T0* _type_bit_ref=NULL; /*IF*/if (r226fast_has(((T226*)(oBC609mem_ref_nb)),/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*16*//*)*/)) { } else { r226add_last(((T226*)(oBC609mem_ref_nb)),/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*16*//*)*/); {T963*n=malloc(sizeof(*n)); *n=M963; r963make(n,(T0*)C); _type_bit_ref=(T0*)n; } r41add_last(((T41*)(oBC609mem_type_bit_ref)),_type_bit_ref); _rc=r963run_class(((T963*)_type_bit_ref)); r355set_at_run_time(((T355*)_rc)); } /*FI*/} /*No:TYPE_BIT_1.fz_a8*/ /*No:TYPE_BIT_1.fz_a9*/ /*No:TYPE_BIT_1.is_reference*/ T0* r549base_class(T549* C){ T0* R=NULL; T0* _bcn=NULL; _bcn=r549base_class_name(); /*IF*/if ((_bcn)!=((void*)(NULL))) { R=r451base_class(((T451*)_bcn)); } else { /*[IRF3.6append*/{T0* b1=((T0*)ms3_291); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_type((T0*)C,((T0*)ms67_470)); r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/return R; } /*No:TYPE_BIT_1.jvm_xastore*/ /*No:TYPE_BIT_1.is_any*/ /*No:TYPE_BIT_1.jvm_method_flags*/ int fBC609base_class_name=0; T0*oBC609base_class_name=NULL; T0* r549base_class_name(void){ if (fBC609base_class_name==0){ T0* R=NULL; fBC609base_class_name=1; {T451*n=malloc(sizeof(*n)); *n=M451; r451make(n,((T0*)ms4_473),NULL); R=(T0*)n; } oBC609base_class_name=R;} return oBC609base_class_name;} /*No:TYPE_BIT_1.jvm_push_local*/ /*No:TYPE_BIT_1.is_expanded*/ /*No:TYPE_BIT_1.is_basic_eiffel_expanded*/ /*No:TYPE_BIT_1.is_none*/ /*No:TYPE_BIT_1.is_integer*/ T0*oBC609mem_ref_nb=NULL; T0* r526add_comment(T526* C,T0* a1){ T0* R=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) { R=(T0*)C; } /*AF*/else { {T46*n=malloc(sizeof(*n)); *n=M46; r46make(n,(T0*)C,a1); R=(T0*)n; } } /*FI*/return R; } /*No:E_RETRY.make*/ /*No:E_RETRY.start_position*/ /*No:E_RETRY.fz_jvm_error*/ T0* r526to_runnable(T526* C,T0* a1){ T0* R=NULL; /*IF*/if (((((T526*)C))->_run_compound/*4*/)==((void*)(NULL))) { C->_run_compound=a1; R=(T0*)C; } else if (((((T526*)C))->_run_compound/*4*/)==((void*)(a1))) { R=(T0*)C; } else { {T526*n=malloc(sizeof(*n)); *n=M526; /*[IRF3.3make*/((((T526*)(n)))->_start_position)=((((T526*)C))->_start_position/*8*/); /*]*/ R=(T0*)n; } R=r526to_runnable(((T526*)R),a1); } /*FI*/return R; } /*No:E_RETRY.run_compound*/ void r526compile_to_jvm(T526* C){ r683add_position((((T526*)C))->_start_position/*8*/); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms76_470); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*No:E_RETRY.is_pre_computable*/ /*No:E_RETRY.use_current*/ void r526error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:E_RETRY.fatal_error*/ /*No:E_RETRY.end_mark_comment*/ /*No:E_RETRY.afd_check*/ /*No:CHECK_INVARIANT.fz_bad_assertion*/ T0* r623runnable(T0* a1,T0* a2,T0* a3){ T0* R=NULL; T0* _a=NULL; int _i=0; /*IF*/if (!(r608empty(((T608*)a1)))) { R=r608twin(((T608*)a1)); _i=(((T608*)((T608*)R)))->_upper/*8*/; while (!((_i)==(0))) { r604push(((T604*)(oBC364small_eiffel)),a3); _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2); /*IF*/if ((_a)==((void*)(NULL))) { r623error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470)); } else { /*[IRF3.6put*/{T608* C1=((T608*)R); T0* b1=_a; int b2=_i; ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1); }/*]*/ } /*FI*/r604pop(((T604*)(oBC364small_eiffel))); _i=(_i)-(1); } } /*FI*/return R; } void r623make(T623* C,T0* a1,T0* a2,T0* a3){ C->_start_position=a1; C->_header_comment=a2; C->_list=a3; } /*No:CHECK_INVARIANT.nb_errors*/ /*No:CHECK_INVARIANT.start_position*/ T0* r623to_runnable(T623* C,T0* a1){ T0* R=NULL; /*IF*/if (((((T623*)C))->_current_type/*12*/)==((void*)(NULL))) { C->_current_type=a1; /*IF*/if (((((T623*)C))->_list/*8*/)!=((void*)(NULL))) { C->_list=r623runnable((((T623*)C))->_list/*8*/,a1,r604top_rf(((T604*)(oBC364small_eiffel)))); } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { R=r623twin(C); /*[IRF3.3set_current_type*/((((T623*)(((T623*)R))))->_current_type)=(NULL); /*]*/ R=r623to_runnable(((T623*)R),a1); } /*FI*/return R; } T0* r623twin(T623* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T623*)R)=*C; return R; } /*No:CHECK_INVARIANT.set_current_type*/ /*No:CHECK_INVARIANT.list*/ /*No:CHECK_INVARIANT.current_type*/ /*No:CHECK_INVARIANT.header_comment*/ void r623compile_to_jvm(T623* C,int a1){ T0* _ca=NULL; int _i=0; int _point_true=0; /*IF*/if (((((T623*)C))->_list/*8*/)!=((void*)(NULL))) { _ca=oBC364code_attribute; r256check_opening(((T256*)_ca)); /*IF*/if (a1) { _i=1; while (!((_i)>((((T608*)((T608*)((((T623*)C))->_list/*8*/))))->_upper/*8*/))) { r348compile_to_jvm(((T348*)(r608item(((T608*)((((T623*)C))->_list/*8*/)),_i))),1); _i=(_i)+(1); } } else { /*[IRF3.3clear*/((((T226*)(((T226*)(oBC596points_false)))))->_upper)=(-(1)); /*]*/ _i=1; while (!((_i)>((((T608*)((T608*)((((T623*)C))->_list/*8*/))))->_upper/*8*/))) { r348compile_to_jvm(((T348*)(r608item(((T608*)((((T623*)C))->_list/*8*/)),_i))),0); r226add_last(((T226*)(oBC596points_false)),r256opcode_ifeq(((T256*)_ca))); _i=(_i)+(1); } /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1); /*]*/ _point_true=r256opcode_goto(((T256*)_ca)); r256resolve_with(oBC596points_false); /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)_ca),3,1); /*]*/ r256resolve_u2_branch(_point_true); } /*FI*/r256check_closing(((T256*)_ca)); } /*FI*/} int r623is_pre_computable(T623* C){ int R=0; int _i=0; /*IF*/if (((((T623*)C))->_list/*8*/)==((void*)(NULL))) { R=1; } else { _i=(((T608*)((T608*)((((T623*)C))->_list/*8*/))))->_upper/*8*/; R=1; while (!((!(R))||((_i)==(0)))) { R=r348is_pre_computable(((T348*)(r608item(((T608*)((((T623*)C))->_list/*8*/)),_i)))); _i=(_i)-(1); } } /*FI*/return R; } int r623use_current(T623* C){ int R=0; int _i=0; /*IF*/if (((((T623*)C))->_list/*8*/)!=((void*)(NULL))) { _i=(((T608*)((T608*)((((T623*)C))->_list/*8*/))))->_upper/*8*/; while (!((R)||((_i)==(0)))) { R=r348use_current(((T348*)(r608item(((T608*)((((T623*)C))->_list/*8*/)),_i)))); _i=(_i)-(1); } } /*FI*/return R; } void r623error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } void r623afd_check(T623* C){ int _i=0; /*IF*/if (((((T623*)C))->_list/*8*/)!=((void*)(NULL))) { _i=(((T608*)((T608*)((((T623*)C))->_list/*8*/))))->_upper/*8*/; while (!((_i)==(0))) { r348afd_check(((T348*)(r608item(((T608*)((((T623*)C))->_list/*8*/)),_i)))); _i=(_i)-(1); } } /*FI*/} /*No:RUN_FEATURE_5.arguments*/ /*No:RUN_FEATURE_5.ucs_true*/ void r869routine_mapping_jvm(T869* C){ int _stack_level=0; int _idx=0; T0* _ct=NULL; T0* _rt=NULL; _ct=(((T869*)C))->_current_type/*4*/; r228push_target_as_target(((T228*)(oBC364jvm))); _stack_level=-((1)+(r228push_arguments(((T228*)(oBC364jvm))))); _rt=(((T869*)C))->_result_type/*24*/; /*IF*/if ((_rt)!=((void*)(NULL))) { _stack_level=(_stack_level)+(X291jvm_stack_space(_rt)); } /*FI*/_idx=r95idx_methodref(((T95*)(oBC364constant_pool)),(T0*)C); r355jvm_invoke(((T355*)(X291run_class(_ct))),_idx,_stack_level); } /*No:RUN_FEATURE_5.actuals_clients*/ T0* r869jvm_descriptor(T869* C){ T0* R=NULL; /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496tmp_jvm_descriptor)))))->_count)=(0); /*]*/ /*[IRF3.4update_tmp_jvm_descriptor*/r869routine_update_tmp_jvm_descriptor(C); /*]*/ R=oBC496tmp_jvm_descriptor; return R; } void r869method_info_start(T869* C){ int _flags=0; _flags=X291jvm_method_flags((((T869*)C))->_current_type/*4*/); r506start(((T506*)(oBC364method_info)),_flags,X776to_key((((T869*)C))->_name/*16*/),r869jvm_descriptor(C)); } /*No:RUN_FEATURE_5.ucs_in_computation*/ void r869routine_update_tmp_jvm_descriptor(T869* C){ T0* _rt=NULL; T0* _ct=NULL; r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\50'); _ct=(((T869*)C))->_current_type/*4*/; X291jvm_target_descriptor_in(_ct,oBC496tmp_jvm_descriptor); /*IF*/if (((((T869*)C))->_arguments/*20*/)!=((void*)(NULL))) { r31jvm_descriptor_in(((T31*)((((T869*)C))->_arguments/*20*/)),oBC496tmp_jvm_descriptor); } /*FI*/_rt=(((T869*)C))->_result_type/*24*/; /*IF*/if ((_rt)==((void*)(NULL))) { r7append(((T7*)(oBC496tmp_jvm_descriptor)),((T0*)ms153_470)); } else { _rt=X291run_type(_rt); r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\51'); X291jvm_descriptor_in(_rt,oBC496tmp_jvm_descriptor); } /*FI*/} void r869make(T869* C,T0* a1,T0* a2,T0* a3){ C->_current_type=a1; C->_name=a2; C->_base_feature=a3; r199put(((T199*)((((T355*)((T355*)(r869run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2)); r604incr_magic_count(((T604*)(oBC364small_eiffel))); C->_use_current_state=1005; r604push(((T604*)(oBC364small_eiffel)),(T0*)C); r869initialize(C); r604pop(((T604*)(oBC364small_eiffel))); } void r869std_compute_use_current(T869* C){ /*IF*/if (((((T869*)C))->_use_current_state/*40*/)==(1006)) { /*IF*/if (((((T869*)C))->_require_assertion/*28*/)!=((void*)(NULL))) { /*IF*/if (r567use_current(((T567*)((((T869*)C))->_require_assertion/*28*/)))) { C->_use_current_state=1004; } /*FI*/} /*FI*/} /*FI*//*IF*/if (((((T869*)C))->_use_current_state/*40*/)==(1006)) { /*IF*/if (((((T869*)C))->_routine_body/*32*/)!=((void*)(NULL))) { /*IF*/if (r592use_current(((T592*)((((T869*)C))->_routine_body/*32*/)))) { C->_use_current_state=1004; } /*FI*/} /*FI*/} /*FI*//*IF*/if (((((T869*)C))->_use_current_state/*40*/)==(1006)) { /*IF*/if (((((T869*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) { /*IF*/if (r633use_current(((T633*)((((T869*)C))->_ensure_assertion/*36*/)))) { C->_use_current_state=1004; } /*FI*/} /*FI*/} /*FI*//*IF*/if (((((T869*)C))->_use_current_state/*40*/)==(1006)) { C->_use_current_state=1003; } /*FI*/} /*No:RUN_FEATURE_5.name*/ int r869arg_count(T869* C){ int R=0; /*IF*/if (((((T869*)C))->_arguments/*20*/)!=((void*)(NULL))) { R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T869*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/; } /*FI*/return R; } void r869routine_afd_check(T869* C){ /*IF*/if (((((T869*)C))->_require_assertion/*28*/)!=((void*)(NULL))) { r567afd_check(((T567*)((((T869*)C))->_require_assertion/*28*/))); } /*FI*//*IF*/if (((((T869*)C))->_routine_body/*32*/)!=((void*)(NULL))) { r592afd_check(((T592*)((((T869*)C))->_routine_body/*32*/))); } /*FI*//*IF*/if (((((T869*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) { r633afd_check(((T633*)((((T869*)C))->_ensure_assertion/*36*/))); } /*FI*/} /*No:RUN_FEATURE_5.local_vars*/ /*No:RUN_FEATURE_5.base_feature*/ /*No:RUN_FEATURE_5.start_position*/ int r869jvm_max_locals(T869* C){ int R=0; R=X291jvm_stack_space((((T869*)C))->_current_type/*4*/); /*IF*/if (((((T869*)C))->_arguments/*20*/)!=((void*)(NULL))) { R=(R)+(r31jvm_stack_space(((T31*)((((T869*)C))->_arguments/*20*/)))); } /*FI*//*IF*/if (((((T869*)C))->_local_vars/*48*/)!=((void*)(NULL))) { R=(R)+(r620jvm_stack_space(((T620*)((((T869*)C))->_local_vars/*48*/)))); } /*FI*//*IF*/if (((((T869*)C))->_result_type/*24*/)!=((void*)(NULL))) { R=(R)+(X291jvm_stack_space((((T869*)C))->_result_type/*24*/)); } /*FI*/return R; } int r869jvm_result_offset(T869* C){ int R=0; R=X291jvm_stack_space((((T869*)C))->_current_type/*4*/); /*IF*/if (((((T869*)C))->_arguments/*20*/)!=((void*)(NULL))) { R=(R)+(r31jvm_stack_space(((T31*)((((T869*)C))->_arguments/*20*/)))); } /*FI*//*IF*/if (((((T869*)C))->_local_vars/*48*/)!=((void*)(NULL))) { R=(R)+(r620jvm_stack_space(((T620*)((((T869*)C))->_local_vars/*48*/)))); } /*FI*/return R; } /*No:RUN_FEATURE_5.ensure_assertion*/ int r869is_exported_in(T869* C,T0* a1){ int R=0; R=r636gives_permission_to(((T636*)(r869clients(C))),a1); return R; } void r869jvm_define_opening(T869* C){ T0* _t=NULL; /*IF*/if (((((T869*)C))->_result_type/*24*/)!=((void*)(NULL))) { _t=X291run_type((((T869*)C))->_result_type/*24*/); X291jvm_initialize_local(_t,r869jvm_result_offset(C)); } /*FI*//*IF*/if (((((T869*)C))->_local_vars/*48*/)!=((void*)(NULL))) { r620jvm_initialize(((T620*)((((T869*)C))->_local_vars/*48*/))); } /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) { /*IF*/if (((((T869*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) { r633compile_to_jvm_old(((T633*)((((T869*)C))->_ensure_assertion/*36*/))); } /*FI*/} /*FI*//*IF*/if (((((T869*)C))->_require_assertion/*28*/)!=((void*)(NULL))) { r567compile_to_jvm(((T567*)((((T869*)C))->_require_assertion/*28*/))); } /*FI*/} /*No:RUN_FEATURE_5.compute_use_current*/ /*No:RUN_FEATURE_5.result_type*/ /*No:RUN_FEATURE_5.jvm_field_or_method*/ int r869jvm_argument_offset(T869* C,T0* a1){ int R=0; R=X291jvm_stack_space((((T869*)C))->_current_type/*4*/); R=(R)+(r31jvm_offset_of(((T31*)((((T869*)C))->_arguments/*20*/)),a1)); return R; } /*No:RUN_FEATURE_5.is_static*/ void r869add_client(T869* C,T0* a1){ int _i=0; /*IF*/if (((((T869*)C))->_actuals_clients/*12*/)==((void*)(NULL))) { {T187*n=malloc(sizeof(*n)); *n=M187; r187with_capacity(n,4); C->_actuals_clients=(T0*)n; } r187add_last(((T187*)((((T869*)C))->_actuals_clients/*12*/)),a1); } else { _i=r187fast_index_of(((T187*)((((T869*)C))->_actuals_clients/*12*/)),a1); /*IF*/if ((_i)>((((T187*)((T187*)((((T869*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) { r187add_last(((T187*)((((T869*)C))->_actuals_clients/*12*/)),a1); } /*FI*/} /*FI*/r355add_client(((T355*)(r869run_class(C))),a1); } /*No:RUN_FEATURE_5.require_assertion*/ /*No:RUN_FEATURE_5.use_current_state*/ /*No:RUN_FEATURE_5.can_be_dropped*/ void r869jvm_define_closing(T869* C){ /*IF*/if (r869use_current(C)) { } /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) { /*IF*/if (((((T869*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) { r633compile_to_jvm(((T633*)((((T869*)C))->_ensure_assertion/*36*/)),1); } /*FI*/} /*FI*//*IF*/if (((((T869*)C))->_result_type/*24*/)!=((void*)(NULL))) { X291jvm_push_local((((T869*)C))->_result_type/*24*/,r869jvm_result_offset(C)); } /*FI*/} /*No:RUN_FEATURE_5.mapping_jvm*/ /*No:RUN_FEATURE_5.current_type*/ T0* r869run_class(T869* C){ T0* R=NULL; R=X291run_class((((T869*)C))->_current_type/*4*/); return R; } /*No:RUN_FEATURE_5.static_value_mem*/ /*No:RUN_FEATURE_5.fz_19*/ /*No:RUN_FEATURE_5.ucs_not_computed*/ void r869fall_down(T869* C){ T0* _rf=NULL; T0* _sub_name=NULL; T0* _sub_bc=NULL; T0* _current_bc=NULL; T0* _sub_rc=NULL; T0* _current_rc=NULL; int _i=0; T0* _running=NULL; _current_rc=X291run_class((((T869*)C))->_current_type/*4*/); _running=(((T355*)((T355*)_current_rc)))->_running/*12*/; /*IF*/if ((_running)!=((void*)(NULL))) { _current_bc=X291base_class((((T869*)C))->_current_type/*4*/); _i=(((T396*)((T396*)_running)))->_lower/*12*/; while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) { _sub_rc=r396item(((T396*)_running),_i); /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) { _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/); _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T869*)C))->_name/*16*/); _rf=r355get_feature(((T355*)_sub_rc),_sub_name); } /*FI*/_i=(_i)+(1); } } /*FI*/} /*No:RUN_FEATURE_5.routine_body*/ /*No:RUN_FEATURE_5.ucs_false*/ /*No:RUN_FEATURE_5.is_pre_computable*/ T0* r869clients(T869* C){ T0* R=NULL; T0* _bfbc=NULL; T0* _bc=NULL; /*IF*/if (((((T869*)C))->_clients_memory/*8*/)==((void*)(NULL))) { _bc=X291base_class((((T869*)C))->_current_type/*4*/); _bfbc=(((T134*)((T134*)((((T869*)C))->_base_feature/*44*/))))->_base_class/*4*/; /*IF*/if ((_bc)==((void*)(_bfbc))) { R=(((T134*)((T134*)((((T869*)C))->_base_feature/*44*/))))->_clients/*24*/; } else { R=r605clients_for(((T605*)_bc),(((T869*)C))->_name/*16*/); } /*FI*/C->_clients_memory=R; } else { R=(((T869*)C))->_clients_memory/*8*/; } /*FI*/return R; } int r869use_current(T869* C){ int R=0; {int z1=(((T869*)C))->_use_current_state/*40*/; if((1004==z1)){ R=1; } else if((1003==z1)){ } else if((1005==z1)){ C->_use_current_state=1006; /*[IRF3.4compute_use_current*/r869std_compute_use_current(C); /*]*/ R=r869use_current(C); } else {R=1; }} return R; } void r869jvm_define(T869* C){ int _idx_flag=0; int _branch=0; _idx_flag=r916idx_fieldref_for_flag((T0*)C); r869method_info_start(C); r256opcode_getstatic(((T256*)(oBC364code_attribute)),_idx_flag,1); _branch=r256opcode_ifne(((T256*)(oBC364code_attribute))); /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1); /*]*/ r256opcode_putstatic(((T256*)(oBC364code_attribute)),_idx_flag,-(1)); r869jvm_define_opening(C); /*IF*/if (((((T869*)C))->_routine_body/*32*/)!=((void*)(NULL))) { r592compile_to_jvm(((T592*)((((T869*)C))->_routine_body/*32*/))); } /*FI*/r869jvm_define_closing(C); r256resolve_u2_branch(_branch); /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ /*]*/ r506finish(((T506*)(oBC364method_info))); } int r869jvm_local_variable_offset(T869* C,T0* a1){ int R=0; R=X291jvm_stack_space((((T869*)C))->_current_type/*4*/); /*IF*/if (((((T869*)C))->_arguments/*20*/)!=((void*)(NULL))) { R=(R)+(r31jvm_stack_space(((T31*)((((T869*)C))->_arguments/*20*/)))); } /*FI*/R=(R)+(r620jvm_offset_of(((T620*)((((T869*)C))->_local_vars/*48*/)),a1)); return R; } /*No:RUN_FEATURE_5.clients_memory*/ void r869initialize(T869* C){ C->_arguments=(((T134*)((T134*)((((T869*)C))->_base_feature/*44*/))))->_arguments/*28*/; /*IF*/if ((((((T869*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T869*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) { C->_arguments=r31to_runnable(((T31*)((((T869*)C))->_arguments/*20*/)),(((T869*)C))->_current_type/*4*/); } /*FI*/C->_local_vars=(((T134*)((T134*)((((T869*)C))->_base_feature/*44*/))))->_local_vars/*20*/; /*IF*/if ((((((T869*)C))->_local_vars/*48*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T869*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) { C->_local_vars=r620to_runnable(((T620*)((((T869*)C))->_local_vars/*48*/)),(((T869*)C))->_current_type/*4*/); } /*FI*/C->_routine_body=(((T134*)((T134*)((((T869*)C))->_base_feature/*44*/))))->_routine_body/*52*/; /*IF*/if (((((T869*)C))->_routine_body/*32*/)!=((void*)(NULL))) { C->_routine_body=r592to_runnable(((T592*)((((T869*)C))->_routine_body/*32*/)),(((T869*)C))->_current_type/*4*/); } /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) { C->_require_assertion=r134run_require((T0*)C); } /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) { C->_ensure_assertion=r134run_ensure((T0*)C); } /*FI*/r916add_procedure((T0*)C); } /*No:RUN_FEATURE_5.afd_check*/ /*No:RUN_FEATURE_5.update_tmp_jvm_descriptor*/ /*No:CALL_INFIX_LT.arguments*/ T0* r112add_comment(T112* C,T0* a1){ T0* R=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) { R=(T0*)C; } else { {T529*n=malloc(sizeof(*n)); *n=M529; r529make(n,(T0*)C,a1); R=(T0*)n; } } /*FI*/return R; } int r112to_integer(T112* C){ int R=0; r112error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T112*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470)); return R; } int r112is_a(T112* C,T0* a1){ int R=0; R=X291is_a(X291run_type((((T112*)C))->_result_type/*20*/),X291run_type(X662result_type(a1))); /*IF*/if (!(R)) { r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T112*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/); r112error(X662start_position(a1),((T0*)ms4_662)); } /*FI*/return R; } /*No:CALL_INFIX_LT.is_current*/ int r112jvm_branch_if_false(T112* C){ int R=0; /*IF*/if (X291is_integer((((T112*)C))->_current_type/*8*/)) { X662compile_to_jvm((((T112*)C))->_target/*12*/); X662compile_to_jvm(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*24*/)))/*)*/); R=r256opcode_if_icmpge(((T256*)(oBC364code_attribute))); } else { R=r112jvm_standard_branch_if_false(C); } /*FI*/return R; } /*No:CALL_INFIX_LT.static_value*/ void r112make(T112* C,T0* a1,T0* a2,T0* a3){ T0* _eal=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) { r683add_position(a2); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/{T454*n=malloc(sizeof(*n)); *n=M454; r454make(n,r112operator(),a2); C->_feature_name=(T0*)n; } {T431*n=malloc(sizeof(*n)); *n=M431; /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3)); /*]*/ _eal=(T0*)n; } r112make_call_1(C,a1,(((T112*)C))->_feature_name/*28*/,_eal); } /*No:CALL_INFIX_LT.nb_errors*/ /*No:CALL_INFIX_LT.feature_name*/ /*No:CALL_INFIX_LT.compile_to_jvm_assignment*/ /*No:CALL_INFIX_LT.fz_iinaiv*/ /*No:CALL_INFIX_LT.arg_count*/ int r112jvm_branch_if_true(T112* C){ int R=0; /*IF*/if (X291is_integer((((T112*)C))->_current_type/*8*/)) { X662compile_to_jvm((((T112*)C))->_target/*12*/); X662compile_to_jvm(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*24*/)))/*)*/); R=r256opcode_if_icmplt(((T256*)(oBC364code_attribute))); } else { R=r112jvm_standard_branch_if_true(C); } /*FI*/return R; } /*No:CALL_INFIX_LT.run_feature*/ /*No:CALL_INFIX_LT.start_position*/ void r112compile_to_jvm_old(T112* C){ X662compile_to_jvm_old((((T112*)C))->_target/*12*/); /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T112*)C))->_arguments/*24*/))); } /*FI*/} /*No:CALL_INFIX_LT.target*/ T0* r112to_runnable(T112* C,T0* a1){ T0* R=NULL; T0* _tla=NULL; T0* _a=NULL; /*IF*/if (((((T112*)C))->_current_type/*8*/)==((void*)(NULL))) { r112to_runnable_0(C,a1); _a=r431to_runnable(((T431*)((((T112*)C))->_arguments/*24*/)),a1); /*IF*/if ((_a)==((void*)(NULL))) { r112error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470)); } else { C->_arguments=_a; } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { r431match_with(((T431*)((((T112*)C))->_arguments/*24*/)),(((T112*)C))->_run_feature/*16*/); } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { _tla=(((T112*)C))->_result_type/*20*/; if(NULL!=(_tla))switch(((T0*)_tla)->id) { case 239: break; default: _tla=NULL; };/*IF*/if ((_tla)!=((void*)(NULL))) { C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*24*/)))/*)*/)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { R=r112twin(C); /*[IRF3.3set_current_type*/((((T112*)(((T112*)R))))->_current_type)=(NULL); /*]*/ R=r112to_runnable(((T112*)R),a1); } /*FI*/return R; } /*No:CALL_INFIX_LT.result_type*/ /*No:CALL_INFIX_LT.is_result*/ T0* r112twin(T112* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T112*)R)=*C; return R; } /*No:CALL_INFIX_LT.set_current_type*/ T0* r112operator(void){ T0* R=NULL; R=((T0*)ms36_473); return R; } int r112is_static(T112* C){ int R=0; /*IF*/if (X291is_integer(X662result_type((((T112*)C))->_target/*12*/))) { /*IF*/if ((X662is_static((((T112*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*24*/)))/*)*/))) { R=1; /*IF*/if ((X662static_value((((T112*)C))->_target/*12*/))<(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*24*/)))/*)*/))) { C->_static_value_mem=1; } else { C->_static_value_mem=0; } /*FI*/} /*FI*/} /*FI*/return R; } void r112standard_compile_target_to_jvm(T112* C){ /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T112* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ X291jvm_check_class_invariant((((T112*)C))->_result_type/*20*/); } int r112compile_to_jvm_into(T112* C,T0* a1){ int R=0; R=r112standard_compile_to_jvm_into(C,a1); return R; } /*No:CALL_INFIX_LT.compile_target_to_jvm*/ /*No:CALL_INFIX_LT.fz_07*/ /*No:CALL_INFIX_LT.can_be_dropped*/ /*No:CALL_INFIX_LT.current_type*/ /*No:CALL_INFIX_LT.jvm_assign*/ /*No:CALL_INFIX_LT.static_value_mem*/ void r112make_call_1(T112* C,T0* a1,T0* a2,T0* a3){ C->_target=a1; C->_feature_name=a2; C->_arguments=a3; } /*No:CALL_INFIX_LT.is_manifest_string*/ /*No:CALL_INFIX_LT.is_void*/ int r112jvm_standard_branch_if_false(T112* C){ int R=0; /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T112* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ R=r256opcode_ifeq(((T256*)(oBC364code_attribute))); return R; } /*No:CALL_INFIX_LT.compile_to_jvm*/ void r112to_runnable_0(T112* C,T0* a1){ C->_current_type=a1; r112cpc_to_runnable(C,a1); C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T112*)C))->_run_feature/*16*/))))->_result_type/*24*/); /*IF*/if (((((T112*)C))->_result_type/*20*/)==((void*)(NULL))) { r683add_position(X496start_position((((T112*)C))->_run_feature/*16*/)); r112error((((T454*)((T454*)((((T112*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295)); } else if (X291is_like_current((((T112*)C))->_result_type/*20*/)) { C->_result_type=X662result_type((((T112*)C))->_target/*12*/); } /*FI*/} /*No:CALL_INFIX_LT.is_pre_computable*/ int r112jvm_standard_branch_if_true(T112* C){ int R=0; /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T112* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ R=r256opcode_ifne(((T256*)(oBC364code_attribute))); return R; } int r112use_current(T112* C){ int R=0; /*IF*/{/*AT*/R=r431use_current(((T431*)((((T112*)C))->_arguments/*24*/))); } /*FI*//*IF*/if (R) { } else if (X662is_current((((T112*)C))->_target/*12*/)) { R=X496use_current((((T112*)C))->_run_feature/*16*/); } else { R=X662use_current((((T112*)C))->_target/*12*/); } /*FI*/return R; } void r112cpc_to_runnable(T112* C,T0* a1){ T0* _rc=NULL; T0* _t=NULL; _t=X662to_runnable((((T112*)C))->_target/*12*/,a1); /*IF*/if ((_t)==((void*)(NULL))) { r683add_position(X662start_position((((T112*)C))->_target/*12*/)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/C->_target=_t; _rc=X291run_class(X662result_type((((T112*)C))->_target/*12*/)); C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C); r576update((((T112*)C))->_target/*12*/,(((T112*)C))->_run_feature/*16*/); } void r112error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:CALL_INFIX_LT.isa_dca_inline_argument*/ /*No:CALL_INFIX_LT.fatal_error*/ /*No:CALL_INFIX_LT.fz_bad_argument*/ /*No:CALL_INFIX_LT.arg1*/ int r112standard_compile_to_jvm_into(T112* C,T0* a1){ int R=0; /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T112* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ R=X291jvm_convert_to(X291run_type((((T112*)C))->_result_type/*20*/),a1); return R; } /*No:CALL_INFIX_LT.call_proc_call_c2jvm*/ /*No:CALL_INFIX_LT.us_lt*/ void r112afd_check(T112* C){ T0* _running=NULL; T0* _rc=NULL; _rc=X291run_class(X662result_type((((T112*)C))->_target/*12*/)); _running=(((T355*)((T355*)_rc)))->_running/*12*/; /*IF*/if ((_running)==((void*)(NULL))) { r683add_position(X662start_position((((T112*)C))->_target/*12*/)); /*[IRF3.6append*/{T0* b1=((T0*)ms1_135); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms141_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_warning(((T683*)(oBC364eh))); r355set_at_run_time(((T355*)_rc)); } else if ((r396count(((T396*)_running)))>(0)) { r576update((((T112*)C))->_target/*12*/,(((T112*)C))->_run_feature/*16*/); } /*FI*/X662afd_check((((T112*)C))->_target/*12*/); /*IF*/{/*AT*/r431afd_check(((T431*)((((T112*)C))->_arguments/*24*/))); } /*FI*/} int r648id(T648* C){ int R=0; R=(((T355*)((T355*)(r648run_class(C)))))->_id/*4*/; return R; } void r648jvm_target_descriptor_in(T648* C,T0* a1){ X291jvm_target_descriptor_in((((T648*)C))->_run_type/*8*/,a1); } int r648jvm_if_x_eq(T648* C){ int R=0; R=X291jvm_if_x_eq((((T648*)C))->_run_type/*8*/); return R; } int r648has_creation(T648* C,T0* a1){ int R=0; R=X291has_creation((((T648*)C))->_run_type/*8*/,a1); return R; } /*No:TYPE_LIKE_FEATURE.is_anchored*/ int r648is_array(T648* C){ int R=0; R=X291is_array((((T648*)C))->_run_type/*8*/); return R; } int r648is_a(T648* C,T0* a1){ int R=0; R=X291is_a((((T648*)C))->_run_type/*8*/,a1); return R; } void r648jvm_to_reference(T648* C){ X291jvm_to_reference((((T648*)C))->_run_type/*8*/); } int r648is_pointer(T648* C){ int R=0; R=X291is_pointer((((T648*)C))->_run_type/*8*/); return R; } /*No:TYPE_LIKE_FEATURE.run_type*/ int r648is_dummy_expanded(T648* C){ int R=0; R=X291is_dummy_expanded((((T648*)C))->_run_type/*8*/); return R; } int r648jvm_push_default(T648* C){ int R=0; R=X291jvm_push_default((((T648*)C))->_run_type/*8*/); return R; } int r648is_string(T648* C){ int R=0; R=X291is_string((((T648*)C))->_run_type/*8*/); return R; } /*No:TYPE_LIKE_FEATURE.is_like_feature*/ /*No:TYPE_LIKE_FEATURE.is_like_current*/ T0* r648ultimate_run_type(T648* C,T0* a1){ T0* R=NULL; T0* _t=NULL; _t=a1; while (!((_t)==((void*)(X291run_type(_t))))) { _t=X291run_type(_t); } /*IF*/if (((((T648*)C))->_run_type/*8*/)==((void*)(NULL))) { C->_run_type=_t; R=(T0*)C; } else { R=r648twin(C); /*[IRF3.3set_run_type*/((((T648*)(((T648*)R))))->_run_type)=(_t); /*]*/ } /*FI*/return R; } void r648make(T648* C,T0* a1,T0* a2){ C->_start_position=a1; C->_like_what=a2; r7copy(((T7*)(oBC646tmp_written_mark)),((T0*)ms113_470)); r7append(((T7*)(oBC646tmp_written_mark)),X776to_string((((T648*)C))->_like_what/*12*/)); C->_written_mark=r902item(oBC646tmp_written_mark); } void r648anchor_cycle_start(T648* C){ int _i=0; /*IF*/if (((((T907*)((T907*)(oBC646visited))))->_upper/*8*/)<(0)) { r907add_last(((T907*)(oBC646visited)),(((T648*)C))->_start_position/*4*/); } else if (r907fast_has(((T907*)(oBC646visited)),(((T648*)C))->_start_position/*4*/)) { _i=0; while (!((_i)>((((T907*)((T907*)(oBC646visited))))->_upper/*8*/))) { r683add_position(/*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[_i]/*)*/); _i=(_i)+(1); } /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } else { r907add_last(((T907*)(oBC646visited)),(((T648*)C))->_start_position/*4*/); } /*FI*/} /*No:TYPE_LIKE_FEATURE.fz_bad_anchor*/ void r648jvm_return_code(T648* C){ X291jvm_return_code((((T648*)C))->_run_type/*8*/); } void r648jvm_xnewarray(T648* C){ X291jvm_xnewarray((((T648*)C))->_run_type/*8*/); } void r648jvm_descriptor_in(T648* C,T0* a1){ X291jvm_descriptor_in((((T648*)C))->_run_type/*8*/,a1); } /*No:TYPE_LIKE_FEATURE.start_position*/ /*No:TYPE_LIKE_FEATURE.like_what*/ int r648is_user_expanded(T648* C){ int R=0; R=X291is_user_expanded((((T648*)C))->_run_type/*8*/); return R; } int r648is_character(T648* C){ int R=0; R=X291is_character((((T648*)C))->_run_type/*8*/); return R; } /*No:TYPE_LIKE_FEATURE.written_mark*/ /*No:TYPE_LIKE_FEATURE.is_run_type*/ T0* r648to_runnable(T648* C,T0* a1){ T0* R=NULL; T0* _rc=NULL; T0* _f=NULL; T0* _t=NULL; r648anchor_cycle_start(C); _rc=X291run_class(a1); _f=X291look_up_for(a1,_rc,(((T648*)C))->_like_what/*12*/); /*IF*/if ((_f)==((void*)(NULL))) { r648error((((T648*)C))->_start_position/*4*/,((T0*)ms1_648)); } else { _t=/*X359*/((T0*)(((T398*)((T398*)_f)))->_result_type/*12*/); /*IF*/if ((_t)==((void*)(NULL))) { r683add_position(X359start_position(_f)); r648error((((T648*)C))->_start_position/*4*/,((T0*)ms2_648)); } else { _t=X291to_runnable(_t,a1); /*IF*/if ((_t)==((void*)(NULL))) { r648error((((T648*)C))->_start_position/*4*/,((T0*)ms54_470)); } else { R=r648ultimate_run_type(C,X291run_type(_t)); } /*FI*/} /*FI*/} /*FI*/r648anchor_cycle_end(C); return R; } /*No:TYPE_LIKE_FEATURE.is_formal_generic*/ T0* r648generic_list(T648* C){ T0* R=NULL; /*IF*/if (r648is_generic(C)) { R=X291generic_list((((T648*)C))->_run_type/*8*/); } else { r648fatal_error_generic_list(C); } /*FI*/return R; } int r648is_real(T648* C){ int R=0; R=X291is_real((((T648*)C))->_run_type/*8*/); return R; } T0* r648twin(T648* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T648*)R)=*C; return R; } int r648is_bit(T648* C){ int R=0; R=X291is_bit((((T648*)C))->_run_type/*8*/); return R; } void r648fatal_error_generic_list(T648* C){ r683add_type((T0*)C,((T0*)ms12_291)); r683print_as_fatal_error(((T683*)(oBC364eh))); } void r648jvm_check_class_invariant(T648* C){ X291jvm_check_class_invariant((((T648*)C))->_run_type/*8*/); } void r648jvm_xaload(T648* C){ X291jvm_xaload((((T648*)C))->_run_type/*8*/); } T0* r648smallest_ancestor(T648* C,T0* a1){ T0* R=NULL; R=X291smallest_ancestor((((T648*)C))->_run_type/*8*/,a1); return R; } /*No:TYPE_LIKE_FEATURE.set_run_type*/ int r648is_boolean(T648* C){ int R=0; R=X291is_boolean((((T648*)C))->_run_type/*8*/); return R; } int r648is_double(T648* C){ int R=0; R=X291is_double((((T648*)C))->_run_type/*8*/); return R; } int r648jvm_stack_space(T648* C){ int R=0; /*IF*/if (r648is_double(C)) { R=2; } else { R=1; } /*FI*/return R; } T0* r648run_class(T648* C){ T0* R=NULL; R=r604run_class((((T648*)C))->_run_type/*8*/); return R; } T0* r648run_time_mark(T648* C){ T0* R=NULL; /*IF*/if (((((T648*)C))->_run_type/*8*/)!=((void*)(NULL))) { R=X291run_time_mark((((T648*)C))->_run_type/*8*/); } /*FI*/return R; } /*No:TYPE_LIKE_FEATURE.fz_cad*/ int r648is_a_in(T648* C,T0* a1,T0* a2){ int R=0; T0* _ct=NULL; T0* _t2=NULL; T0* _t1=NULL; /*IF*/if (((((T648*)C))->_written_mark/*16*/)==((void*)(X291written_mark(a1)))) { R=1; } else { _ct=(((T355*)((T355*)a2)))->_current_type/*0*/; _t1=r648to_runnable(C,_ct); _t2=X291to_runnable(a1,_ct); /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) { R=1; } else { R=X291is_a(_t1,_t2); } /*FI*/} /*FI*/return R; } T0* r648look_up_for(T648* C,T0* a1,T0* a2){ T0* R=NULL; R=r605look_up_for(((T605*)(r648base_class(C))),a1,a2); return R; } int r648jvm_convert_to(T648* C,T0* a1){ int R=0; R=X291jvm_convert_to((((T648*)C))->_run_type/*8*/,a1); return R; } T0* r648expanded_initializer(T648* C){ T0* R=NULL; R=X291expanded_initializer((((T648*)C))->_run_type/*8*/); return R; } int r648jvm_if_x_ne(T648* C){ int R=0; R=X291jvm_if_x_ne((((T648*)C))->_run_type/*8*/); return R; } /*No:TYPE_LIKE_FEATURE.fz_dot*/